package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.*;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

import java.security.SecureRandom;
import java.util.List;

/**
 * 营销活动详情查询数据库操作接口定义
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/3/25 15:28
 */
public interface McDetailInfoMapper {

    /**
     * 代理商营销活动详情查询数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMMcAgentProfitSharingInfo 代理商营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 18:56
     */
    TMMcAgentProfitSharingInfo selectAgentProfitSharingMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 卡券营销活动详情查询数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 18:56
     */
    TMMcCouponInfo selectCouponMcDetailInfo(String instId, String mcNo) throws Exception;

    /**
     * 商户手续费优惠营销活动详情查询数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMMcMchntFeeDiscountInfo 商户手续费减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/28 18:56
     */
    TMMcMchntFeeDiscountInfo selectMchntFeeDiscountMcDetailInfo(String instId, String mcNo) throws Exception;

    /**
     * 减免营销活动详情查询数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return cc.rengu.igas.momp.common.entity.TMMcMoneyOffInfo 减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/26 00:06
     */
    TMMcMoneyOffInfo selectMoneyOffMcDetailInfo(String instId, String mcNo) throws Exception;

    /**
     * 进行中的减免营销活动详情查询数据库操作接口定义
     *
     * @param instId   法人机构号
     * @param mcNo     营销活动编号
     * @param mcStatus 营销活动状态
     * @return cc.rengu.igas.momp.common.entity.TMMcMoneyOffInfo 减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/3/26 00:06
     */
    TMMcMoneyOffInfo selectMoMcDetailInfoByMcStatus(String instId, String mcNo, String mcStatus) throws Exception;

    /**
     * 银行操作员查询卡券类营销活动基本信息表数据库操作接口定义
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 15:17
     */
    TMMcCouponInfo selectCouponMcDetailInfoByBankBasicRole(CpMcListInfoInObj cpMcListInfoInObj) throws Exception;

    /**
     * 银行操作员查询商户手续费优惠类营销活动基本信息表数据库操作接口定义
     *
     * @param mfdMcListInfoInObj 商户手续费优惠类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMchntFeeDiscountInfo 商户手续费减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 15:17
     */
    TMMcMchntFeeDiscountInfo selectMfdMcDetailInfoByBankBasicRole(MfdMcListInfoInObj mfdMcListInfoInObj) throws Exception;

    /**
     * 银行操作员查询营销活动基本信息表数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMoneyOffInfo 减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 15:17
     */
    TMMcMoneyOffInfo selectMoneyOffMcDetailInfoByBankBasicRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 银行发布员查询营销活动基本信息表数据库操作接口定义
     *
     * @param cpMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 18:49
     */
    TMMcCouponInfo selectCouponMcDetailInfoByBankPublishRole(CpMcListInfoInObj cpMcListInfoInObj) throws Exception;

    /**
     * 银行发布员查询营销活动基本信息表数据库操作接口定义
     *
     * @param mfdMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMchntFeeDiscountInfo 商户手续费减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 18:49
     */
    TMMcMchntFeeDiscountInfo selectMfdMcDetailInfoByBankPublishRole(MfdMcListInfoInObj mfdMcListInfoInObj) throws Exception;

    /**
     * 银行发布员查询营销活动基本信息表数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMoneyOffInfo 减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 18:49
     */
    TMMcMoneyOffInfo selectMoneyOffMcDetailInfoByBankPublishRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 商户查询卡券类营销活动基本信息表数据库操作接口定义
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:12
     */
    TMMcCouponInfo selectCouponMcDetailInfoByMchnt(CpMcListInfoInObj cpMcListInfoInObj) throws Exception;

    /**
     * 商户(带商圈编号)查询进行中的卡券类营销活动基本信息表数据库操作接口定义
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:12
     */
    TMMcCouponInfo selectAvailableCouponMcDetailInfoByMchntWithArea(CpMcListInfoInObj cpMcListInfoInObj) throws Exception;

    /**
     * 商户查询进行中的卡券类营销活动基本信息表数据库操作接口定义
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:12
     */
    TMMcCouponInfo selectAvailableCouponMcDetailInfoByMchnt(CpMcListInfoInObj cpMcListInfoInObj) throws Exception;

    /**
     * 商户(带商圈编号)查询卡券类营销活动基本信息表数据库操作接口定义
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:12
     */
    TMMcCouponInfo selectCouponMcDetailInfoByMchntWithArea(CpMcListInfoInObj cpMcListInfoInObj) throws Exception;

    /**
     * 商户查询营销活动基本信息表数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMoneyOffInfo 减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:12
     */
    TMMcMoneyOffInfo selectMoneyOffMcDetailInfoByMchnt(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 商户(带商圈编号)查询营销活动基本信息表数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMoneyOffInfo 减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 19:12
     */
    TMMcMoneyOffInfo selectMoneyOffMcDetailInfoByMchntWithArea(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 通用营销活动详情查询数据库操作接口定义
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param tableName 数据库表名
     * @return java.lang.Object 应答对象
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 02:44
     */
    Object selectMcDetailInfo(String instId, String mcNo, String tableName) throws Exception;

    /**
     * 卡券类营销活动信息新增数据库操作接口定义
     *
     * @param tmMcCouponInfo 卡券类营销活动信息表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/21 10:29
     */
    int insertSingleCouponMcInfo(TMMcCouponInfo tmMcCouponInfo) throws Exception;

    /**
     * 商户手续费优惠营销活动信息新增数据库操作接口定义
     *
     * @param tmMcMchntFeeDiscountInfo 减免类营销活动信息表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/21 10:29
     */
    int insertSingleMfdMcInfo(TMMcMchntFeeDiscountInfo tmMcMchntFeeDiscountInfo) throws Exception;

    /**
     * 减免营销活动信息新增数据库操作接口定义
     *
     * @param tmMcMoneyOffInfo 减免类营销活动信息表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/21 10:29
     */
    int insertSingleMoneyOffMcInfo(TMMcMoneyOffInfo tmMcMoneyOffInfo) throws Exception;

    /**
     * 减免营销活动信息删除数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/21 10:29
     */
    int deleteMoneyOffMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 使用主键更新减免类营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:19
     */
    int updateMoneyOffMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新减免类营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/10 17:19
     */
    int updateMoneyOffMcAuditStatusByPrimaryKeyForTask(String instId, String mcNo, String auditStatus) throws Exception;


    /**
     * 代理商营销活动信息新增数据库操作接口定义
     *
     * @param instId                   法人机构号
     * @param mcAgentProfitSharingInfo 代理商营销活动信息表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 23:43
     */
    int insertAgentProfitSharingMcInfo(String instId, TMMcAgentProfitSharingInfo mcAgentProfitSharingInfo) throws Exception;

    /**
     * 代理商营销活动信息删除数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int deleteAgentProfitSharingMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 使用主键更新代理商类营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int updateAgentProfitSharingMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 收银员返现营销活动信息新增数据库操作接口定义
     *
     * @param mcCashierCashbackInfo 收银员返现类营销活动信息表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:53
     */
    int insertCashierCashbackMcInfo(TMMcCashierCashbackInfo mcCashierCashbackInfo) throws Exception;

    /**
     * 收银员返现营销活动信息删除数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int deleteCashierCashbackMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 使用主键更新收银员返现营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int updateCashierCashbackMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新收银员返现营销活动审批状态数据库操作接口定义
     * 任务专用
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/11 18:54
     */
    int updateCashierCashbackMcAuditStatusByPrimaryKeyForTask(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 卡券类营销活动信息删除数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int deleteCpMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 使用主键查询卡券类营销活动信息数据库操作接口定义
     *
     * @param tmMcCouponInfo 卡券类营销活动信息表
     * @return cc.rengu.igas.momp.common.entity.TMMcCouponInfo 卡券类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    TMMcCouponInfo selectCouponMcInfoByPrimaryKey(TMMcCouponInfo tmMcCouponInfo) throws Exception;

    /**
     * 使用主键更新卡券类营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int updateCouponMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新卡券类营销活动审批状态数据库操作接口定义
     * 定时任务专用
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/6 22:54
     */
    int updateCouponMcAuditStatusByPrimaryKeyForTask(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 商户手续费优惠营销活动信息删除数据库操作接口定义
     *
     * @param instId 法人机构号
     * @param mcNo   营销活动编号
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int deleteMfdMcInfo(String instId, String mcNo) throws Exception;

    /**
     * 使用主键更新商户手续费优惠营销活动审批状态数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/6 22:54
     */
    int updateMfdMcAuditStatusByPrimaryKey(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用主键更新商户手续费优惠营销活动审批状态数据库操作接口定义
     * 任务专用
     *
     * @param instId      法人机构号
     * @param mcNo        营销活动编号
     * @param auditStatus 审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/6/10 22:54
     */
    int updateMfdMcAuditStatusByPrimaryKeyForTask(String instId, String mcNo, String auditStatus) throws Exception;

    /**
     * 使用表名、营销活动编号和营销活动审批状态更新营销活动审批状态数据库操作接口定义
     *
     * @param tableName      数据库表名
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param newAuditStatus 新审批状态
     * @param oldAuditStatus 就审批状态
     * @param oprId          操作员ID
     * @param timeStamp      时间戳
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/7 02:00
     */
    int updateMcAuditStatusByMcNoAndAuditStatusAndTableName(String tableName, String instId, String mcNo, String newAuditStatus, String oldAuditStatus, String oprId, String timeStamp, String auditReason) throws Exception;

    /**
     * 发布成功更新营销活动状态数据数据库操作接口定义
     * 各营销活动通用
     *
     * @param object    数据库操作对象
     * @param tableName 数据库表名
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 20:52
     */
    int updateMcStatusForPublishing(Object object, String tableName) throws Exception;

    /**
     * 活动中中添加商户流程发布成功更新营销活动预算数据数据库操作接口定义
     * 各类型营销活动通用
     *
     * @param object 输入对象
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 04:00
     */
    int updateMcBudgetForPublishing(Object object) throws Exception;

    /**
     * 发布拒绝更新营销活动审批状态和发布拒绝原因数据库操作接口定义
     * 各类型营销活动通用
     *
     * @param object    数据库操作实体类
     * @param tableName 数据库表名
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 21:13
     */
    int updateMcAuditStatusForPublishRefusal(Object object, String tableName) throws Exception;

    /**
     * 启用已暂停营销活动更新营销活动状态数据库操作接口定义
     * 目前支持减免类\卡券类和收银员返现类营销活动
     * 启用已暂停\暂停进行中\强制终止进行中营销活动时使用
     *
     * @param object    数据库实体类
     * @param tableName 数据库表名
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/26 21:27
     */
    int updatePausedMcMcStatusForEnabling(Object object, String tableName) throws Exception;

    /**
     * 使用用户白名单查询用户所在卡券营销活动基本信息数据库操作接口定义
     * 分页查询
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @param pageInfo          数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/6/8 11:17
     */
    PageResult selectCouponMcInfoUsingUserWhiteList(CpMcListInfoInObj cpMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 查询未使用卡券白名单的卡券营销活动基本信息数据库操作接口定义
     * 分页查询
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @param pageInfo          数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/6/8 11:17
     */
    PageResult selectCouponMcInfoWithoutUserWhiteList(CpMcListInfoInObj cpMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 使用用户白名单查询用户所在测试中的卡券营销活动基本信息数据库操作接口定义
     * 分页查询
     *
     * @param cpMcListInfoInObj 卡券类营销活动列表查询使用实体类入参
     * @param pageInfo          数据库操作分页实体类
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author JL Pang
     * @date 2020/9/21 11:17
     */
    PageResult selectTestCouponMcInfoWithoutUserWhiteList(CpMcListInfoInObj cpMcListInfoInObj, PageInfo pageInfo) throws Exception;

    /**
     * 银行录入岗查询营销活动基本信息表数据库操作接口定义
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcAgentProfitSharingInfo 代理商营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 18:50
     */
    TMMcAgentProfitSharingInfo selectApsInfoDetailInfoByBankBasicRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 银行发布岗查询营销活动基本信息表数据库操作接口实现
     *
     * @param moMcListInfoInObj 营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcAgentProfitSharingInfo 代理商营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 18:50
     */
    TMMcAgentProfitSharingInfo selectApsInfoDetailInfoByBankPublishRole(MoMcListInfoInObj moMcListInfoInObj) throws Exception;

    /**
     * 银行操作员查询收银员返现类营销活动基本信息表数据库操作接口定义
     *
     * @param ccbMcListInfoInObj 收银员返现营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMchntFeeDiscountInfo 收银员返现营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/5/28 15:17
     */
    TMMcCashierCashbackInfo selectCashierCashDetailInfoByBankBasicRole(CcbMcListInfoInObj ccbMcListInfoInObj) throws Exception;

    /**
     * 使用表名、营销活动编号和营销活动各状态更新营销活动各状态数据库操作接口实现
     *
     * @param tableName      数据库表名
     * @param instId         法人机构号
     * @param mcNo           营销活动编号
     * @param newMcStatus    新营销活动状态
     * @param newAuditStatus 新营销活动审批状态
     * @param oldMcStatus    原营销活动状态
     * @param oldAuditStatus 原营销活动审批状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/4/7 02:02
     */
    int updateMcAllStatusByMcNoAndOriStatusAndTableName(String tableName, String instId, String mcNo, String oldMcStatus, String newMcStatus, String oldAuditStatus, String newAuditStatus) throws Exception;

    /**
     * 使用表名、营销活动编号和营销活动审批状态更新营销活动审批状态及拒绝原因数据库操作接口实现
     *
     * @param object    营销活动实体类入参
     * @param tableName 数据库表名
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/7/4
     */
    int updateMcInfoByMcNoAndAuditStatusAndTableName(Object object, String tableName) throws Exception;

    /**
     * 批量删除营销活动商户信息
     *
     * @param tmPlatBizTmpList 临时表数据list
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10 22:54
     */
    int deleteByinstidmcNomchntNo(List<TMPlatBizTmp> tmPlatBizTmpList) throws Exception;

    /**
     * 查询指定机构支持新增商户的商户手续费优惠活动信息数据库操作定义
     *
     * @param mfdMcListInfoInObj 商户手续费优惠类营销活动列表查询使用实体类入参
     * @return cc.rengu.igas.momp.common.entity.TMMcMchntFeeDiscountInfo 商户手续费减免类营销活动信息表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/7/7 17:18
     */
    List<TMMcMchntFeeDiscountInfo> selectMfdMcDetailInfoForComboPayment(MfdMcListInfoInObj mfdMcListInfoInObj) throws Exception;

    /**
     * 进行中活动添加商户发布修改营销活动正式表活动状态
     *
     * @param object 数据库操作实体类
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/10 22:54
     */
    int updataMcStatusForPublish(Object object) throws Exception;

    /**
     * 查询指定机构指定代理商的代理商分润活动
     *
     * @param agentNo 代理商编号
     * @param instId  法人机构号
     * @return cc.rengu.igas.momp.common.entity.TMMcMchntFeeDiscountInfo 商户手续费减免类营销活动信息表
     * @throws Exception 异常信息
     * @author JL PANG
     * @date 2020/7/7 17:18
     */
    List<TMMcAgentProfitSharingInfo> selectApsMcInfoList(String instId, String agentNo, String nowDate) throws Exception;

}
